from scipy import stats
import numpy as np
import matplotlib.pyplot as plt

# 生成一些数据点
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 3, 5, 7, 11])

# 使用stats.linregress进行线性拟合
slope, intercept, r_value, p_value, std_err = stats.linregress(x, y)

# 打印拟合结果
print(f"拟合方程: y = {slope:.2f}x + {intercept:.2f}")
print(f"相关系数: {r_value:.2f}")

# 绘制数据点和拟合直线
plt.scatter(x, y, label='数据点')
plt.plot(x, slope * x + intercept, label='拟合直线', color='red')
plt.legend()
plt.show()